ARD2  1.00 for Rev B. Hardware
Airbag Reference Demonstrator using MPC5604P
freemaster_private.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 *
00003 * Freescale Semiconductor Inc.
00004 * (c) Copyright 2004-2011 Freescale Semiconductor
00005 * ALL RIGHTS RESERVED.
00006 *
00007 ****************************************************************************/
00019 #ifndef __FREEMASTER_PRIVATE_H
00020 #define __FREEMASTER_PRIVATE_H
00021 
00022 #ifndef __FREEMASTER_H
00023 #error Please include the freemaster.h master header file before the freemaster_private.h
00024 #endif
00025 
00026 #ifdef FMSTR_USE_MQX_IO
00027   #if FMSTR_USE_MQX_IO
00028     /* include MQX headers */
00029     #include <mqx.h>
00030     #include <bsp.h>
00031   #endif
00032 #endif
00033 
00034 /******************************************************************************
00035 * Platform-dependent types, macros and functions
00036 ******************************************************************************/
00037 
00038 #undef FMSTR_PLATFORM
00039 
00040 /* platform macro FMSTR_PLATFORM_xxxxxxx should be defined  */
00041 /* as "non-zero" in the "freemaster.h" file */
00042 
00043 #if defined(FMSTR_PLATFORM_56F8xx)
00044     #if FMSTR_PLATFORM_56F8xx
00045     #include "freemaster_56F8xx.h"
00046     #define FMSTR_PLATFORM 56F8xx
00047     #else
00048     #undef FMSTR_PLATFORM_56F8xx
00049     #endif
00050 #endif
00051 
00052 #if defined(FMSTR_PLATFORM_56F8xxx)
00053     #if FMSTR_PLATFORM_56F8xxx
00054     #include "freemaster_56F8xxx.h"
00055     #define FMSTR_PLATFORM 56F8xxx
00056     #else
00057     #undef FMSTR_PLATFORM_56F8xxx
00058     #endif
00059 #endif
00060 
00061 #if defined(FMSTR_PLATFORM_HC12)
00062     #if FMSTR_PLATFORM_HC12
00063     #include "freemaster_HC12.h"
00064     #define FMSTR_PLATFORM HC12
00065     #else
00066     #undef FMSTR_PLATFORM_HC12
00067     #endif
00068 #endif
00069 
00070 #if defined(FMSTR_PLATFORM_HC08)
00071     #if FMSTR_PLATFORM_HC08
00072     #include "freemaster_HC08.h"
00073     #define FMSTR_PLATFORM HC08
00074     #else
00075     #undef FMSTR_PLATFORM_HC08
00076     #endif
00077 #endif
00078 
00079 #if defined(FMSTR_PLATFORM_MPC55xx)
00080     #if FMSTR_PLATFORM_MPC55xx
00081     #include "freemaster_MPC55xx.h"
00082     #define FMSTR_PLATFORM MPC55xx
00083     #else
00084     #undef FMSTR_PLATFORM_MPC55xx
00085     #endif
00086 #endif
00087 
00088 #if defined(FMSTR_PLATFORM_MPC5xx)
00089     #if FMSTR_PLATFORM_MPC5xx
00090     #include "freemaster_MPC5xx.h"
00091     #define FMSTR_PLATFORM MPC5xx
00092     #else
00093     #undef FMSTR_PLATFORM_MPC5xx
00094     #endif
00095 #endif
00096 
00097 #if defined(FMSTR_PLATFORM_MCF51xx)
00098     #if FMSTR_PLATFORM_MCF51xx
00099     #include "freemaster_MCF51xx.h"
00100     #define FMSTR_PLATFORM MCF51xx
00101     #else
00102     #undef FMSTR_PLATFORM_MCF51xx
00103     #endif
00104 #endif
00105 
00106 #if defined(FMSTR_PLATFORM_MCF52xx)
00107     #if FMSTR_PLATFORM_MCF52xx
00108     #include "freemaster_MCF52xx.h"
00109     #define FMSTR_PLATFORM MCF52xx
00110     #else
00111     #undef FMSTR_PLATFORM_MCF52xx
00112     #endif
00113 #endif
00114 
00115 #if defined(FMSTR_PLATFORM_MPC56xx)
00116     #if FMSTR_PLATFORM_MPC56xx
00117     #include "freemaster_MPC56xx.h"
00118     #define FMSTR_PLATFORM MPC56xx
00119     #else
00120     #undef FMSTR_PLATFORM_MPC56xx
00121     #endif
00122 #endif
00123 
00124 #if defined(FMSTR_PLATFORM_MQX)
00125     #if FMSTR_PLATFORM_MQX
00126     #include "freemaster_MQX.h"
00127     #define FMSTR_PLATFORM MQX
00128     #else
00129     #undef FMSTR_PLATFORM_MQX
00130     #endif
00131 #endif
00132 
00133 #if defined(FMSTR_PLATFORM_KXX)
00134     #if FMSTR_PLATFORM_KXX
00135     #include "freemaster_Kxx.h"
00136     #define FMSTR_PLATFORM KXX
00137     #else
00138     #undef FMSTR_PLATFORM_KXX
00139     #endif
00140 #endif
00141 
00142 #ifndef FMSTR_PLATFORM
00143 #error Unknown FreeMASTER driver platform
00144 #endif
00145 
00146 /******************************************************************************
00147 * NULL needed
00148 ******************************************************************************/
00149 
00150 #ifndef NULL
00151 #define NULL ((void *) 0)
00152 #endif
00153 
00154 /******************************************************************************
00155 * Boolean values
00156 ******************************************************************************/
00157 
00158 #ifndef FMSTR_TRUE
00159 #define FMSTR_TRUE (1U)
00160 #endif
00161 
00162 #ifndef FMSTR_FALSE
00163 #define FMSTR_FALSE (0U)
00164 #endif
00165 
00166 
00167 /******************************************************************************
00168 * inline functions 
00169 ******************************************************************************/
00170 
00171 /* we do not assume the inline is always supported by compiler
00172   rather each platform header defines its FMSTR_INLINE */
00173 #ifndef FMSTR_INLINE
00174 #define FMSTR_INLINE static
00175 #endif
00176 
00177 /* building macro-based inline code */
00178 #define FMSTR_MACROCODE_BEGIN()     do{
00179 #define FMSTR_MACROCODE_END()       }while(0)
00180 
00181 /******************************************************************************
00182 * Global non-API functions (used internally in FreeMASTER driver)
00183 ******************************************************************************/
00184 
00185 FMSTR_BOOL FMSTR_InitSerial(void);
00186 void FMSTR_SendResponse(FMSTR_BPTR pMessageIO, FMSTR_SIZE8 nLength);
00187 void FMSTR_ProcessSCI(void);
00188 void FMSTR_ProcessJTAG(void);
00189 
00190 FMSTR_BOOL FMSTR_Tx(FMSTR_U8 * pTxChar);
00191 FMSTR_BOOL FMSTR_Rx(FMSTR_U8   nRxChar);
00192 
00193 FMSTR_BOOL FMSTR_ProtocolDecoder(FMSTR_BPTR pMessageIO);
00194 FMSTR_BPTR FMSTR_GetBoardInfo(FMSTR_BPTR pMessageIO);
00195 
00196 FMSTR_BPTR FMSTR_ReadMem(FMSTR_BPTR pMessageIO);
00197 FMSTR_BPTR FMSTR_ReadVar(FMSTR_BPTR pMessageIO, FMSTR_SIZE8 nSize);
00198 FMSTR_BPTR FMSTR_WriteMem(FMSTR_BPTR pMessageIO);
00199 FMSTR_BPTR FMSTR_WriteVar(FMSTR_BPTR pMessageIO, FMSTR_SIZE8 nSize);
00200 FMSTR_BPTR FMSTR_WriteVarMask(FMSTR_BPTR pMessageIO, FMSTR_SIZE8 nSize);
00201 FMSTR_BPTR FMSTR_WriteMemMask(FMSTR_BPTR pMessageIO);
00202 
00203 void FMSTR_InitAppCmds(void);
00204 FMSTR_BPTR FMSTR_StoreAppCmd(FMSTR_BPTR pMessageIO);
00205 FMSTR_BPTR FMSTR_GetAppCmdStatus(FMSTR_BPTR pMessageIO);
00206 FMSTR_BPTR FMSTR_GetAppCmdRespData(FMSTR_BPTR pMessageIO);
00207 
00208 void FMSTR_InitScope(void);
00209 FMSTR_BPTR FMSTR_SetUpScope(FMSTR_BPTR pMessageIO);
00210 FMSTR_BPTR FMSTR_ReadScope(FMSTR_BPTR pMessageIO);
00211 
00212 void FMSTR_InitRec(void);
00213 FMSTR_BPTR FMSTR_SetUpRec(FMSTR_BPTR pMessageIO);
00214 FMSTR_BPTR FMSTR_StartRec(FMSTR_BPTR pMessageIO);
00215 FMSTR_BPTR FMSTR_StopRec(FMSTR_BPTR pMessageIO);
00216 FMSTR_BPTR FMSTR_GetRecStatus(FMSTR_BPTR pMessageIO);
00217 FMSTR_BPTR FMSTR_GetRecBuff(FMSTR_BPTR pMessageIO);
00218 FMSTR_BOOL FMSTR_IsInRecBuffer(FMSTR_ADDR nAddr, FMSTR_SIZE8 nSize);
00219 FMSTR_SIZE FMSTR_GetRecBuffSize(void);
00220 
00221 void FMSTR_InitTsa(void);
00222 FMSTR_BPTR FMSTR_GetTsaInfo(FMSTR_BPTR pMessageIO);
00223 FMSTR_BPTR FMSTR_GetStringLen(FMSTR_BPTR pMessageIO);
00224 FMSTR_BOOL FMSTR_CheckTsaSpace(FMSTR_ADDR nAddr, FMSTR_SIZE8 nSize, FMSTR_BOOL bWriteAccess);
00225 FMSTR_U16  FMSTR_StrLen(FMSTR_ADDR nAddr);
00226 
00227 void FMSTR_InitSfio(void);
00228 FMSTR_BPTR FMSTR_SfioFrame(FMSTR_BPTR pMessageIO);
00229 FMSTR_BPTR FMSTR_SfioGetResp(FMSTR_BPTR pMessageIO);
00230 
00231 void FMSTR_InitPipes(void);
00232 FMSTR_BPTR FMSTR_PipeFrame(FMSTR_BPTR pMessageIO);
00233 
00234 void FMSTR_InitCan(void);
00235 void FMSTR_SetCanCmdID(FMSTR_U32 canID);
00236 void FMSTR_SetCanRespID(FMSTR_U32 canID);
00237 FMSTR_BOOL FMSTR_TxCan(void);
00238 FMSTR_BOOL FMSTR_RxCan(void);
00239 void FMSTR_ProcessCanRx(void);
00240 void FMSTR_ProcessCanTx(void);
00241 
00242 void FMSTR_InitPDBdm(void);
00243 
00244 /****************************************************************************************
00245 * Potentially unused variable declaration
00246 *****************************************************************************************/
00247 
00248 #ifdef  _lint
00249 #define FMSTR_UNUSED(sym) /*lint -esym(715,sym) -esym(818,sym) -esym(529,sym) -e{960} */
00250 #else
00251 #define FMSTR_UNUSED(sym) ((sym),0)
00252 #endif
00253 
00254 
00255 #if (FMSTR_LONG_INTR && (FMSTR_SHORT_INTR || FMSTR_POLL_DRIVEN)) || \
00256     (FMSTR_SHORT_INTR && (FMSTR_LONG_INTR || FMSTR_POLL_DRIVEN)) || \
00257     (FMSTR_POLL_DRIVEN && (FMSTR_LONG_INTR || FMSTR_SHORT_INTR)) || \
00258     !(FMSTR_POLL_DRIVEN || FMSTR_LONG_INTR || FMSTR_SHORT_INTR)
00259     /* mismatch in interrupt modes, only one can be selected */
00260     #error You have to enable exctly one of FMSTR_LONG_INTR or FMSTR_SHORT_INTR or FMSTR_POLL_DRIVEN
00261 #endif
00262 
00263 #if FMSTR_SHORT_INTR
00264     #if FMSTR_COMM_RQUEUE_SIZE < 1
00265     #error Error in FMSTR_COMM_RQUEUE_SIZE value.
00266     #endif
00267 #endif
00268 
00269 /* only one communication link may be selected */
00270 #if ((((FMSTR_USE_SCI)?1:0) + ((FMSTR_USE_JTAG)?1:0) + ((FMSTR_USE_CAN)?1:0) + ((FMSTR_USE_MQX_IO)?1:0) + ((FMSTR_DISABLE)?1:0) + ((FMSTR_USE_USB_CDC)?1:0) + ((FMSTR_USE_PDBDM)?1:0)) > 1)
00271 #error More than one communication interface selected for FreeMASTER driver
00272 #endif
00273 
00274 /* All Interface options are set to 0 */
00275 #if ((((FMSTR_USE_SCI)?1:0) + ((FMSTR_USE_JTAG)?1:0) + ((FMSTR_USE_CAN)?1:0) + ((FMSTR_USE_MQX_IO)?1:0) + ((FMSTR_DISABLE)?1:0) + ((FMSTR_USE_USB_CDC)?1:0) + ((FMSTR_USE_PDBDM)?1:0)) == 0)
00276 #error All Interface options are set to 0, please chooce one intercace or set FMSTR_DISABLE macro to 1.
00277 #endif
00278 
00279 /* SCI does not have a transmission double buffer (kind of queue) */
00280 /* (if not specified differently in platform-dependent header file) */
00281 #if FMSTR_USE_SCI
00282     #ifndef FMSTR_SCI_BASE
00283     #error FMSTR_SCI_BASE must be defined when using SCI interface
00284     #endif
00285 #endif
00286 
00287 /* CAN is MSCAN or FLEXCAN */
00288 #if FMSTR_USE_CAN
00289 
00290     /* if CANHW is not specified in freemaster.h, the platform is not yet tested with CAN */
00291     #if (!defined(FMSTR_CANHW_MSCAN)) && FMSTR_USE_MSCAN
00292     #warning MSCAN support not yet fully tested on this platform
00293     #endif
00294 
00295     /* if CANHW is not specified in freemaster.h, the platform is not yet tested with CAN */
00296     #if (!defined(FMSTR_CANHW_FLEXCAN)) && FMSTR_USE_FLEXCAN
00297     #warning FlexCAN support not yet fully tested on this platform
00298     #endif
00299    
00300     #ifndef FMSTR_CAN_BASE
00301     #error FMSTR_CAN_BASE must be defined when is using CAN interface
00302     #endif
00303     
00304     /* can't be both*/
00305     #if (FMSTR_USE_MSCAN) && (FMSTR_USE_FLEXCAN)
00306     #error Can not configure FreeMASTER to use both MSCAN and FlexCAN
00307     #endif
00308     
00309     /* should be at least one */
00310     #if !(FMSTR_USE_MSCAN) && !(FMSTR_USE_FLEXCAN)
00311     #error Please select if MSCAN or FlexCAN will be used
00312     #endif
00313 
00314     /* flexcan needs to know the transmit and receive MB number */
00315     #if FMSTR_USE_FLEXCAN
00316         #if FMSTR_FLEXCAN_TXMB == FMSTR_FLEXCAN_RXMB
00317             #warning FCAN RX and FCAN TX are using same Message Buffer. FreeMASTER CAN driver doesnt support this configuration. Please change number of Message Buffer in FMSTR_FLEXCAN_TXMB or FMSTR_FLEXCAN_RXMB macros.
00318         #endif
00319     #endif
00320 
00321 #else
00322 
00323     /* Cannot define define FMSTR_USE_CAN by user */
00324     #if FMSTR_USE_FLEXCAN || FMSTR_USE_MSCAN
00325     #error Cannot use FlecCan/MsCan and define macro FMSTR_USE_CAN to 0
00326     #endif
00327 
00328 #endif
00329 
00330 /* MQX IO communication interface warnings and errors */
00331 #if FMSTR_USE_MQX_IO
00332     
00333     #if !(defined(FMSTR_PLATFORM_MQX) && FMSTR_PLATFORM_MQX)
00334        #error MQX IO communication interface is supported only in FMSTR_PLATFORM_MQX, Please choose another communication interface.
00335     #endif
00336 
00337     /* define FreeMASTER IO Channel */
00338     #ifndef FMSTR_MQX_IO_CHANNEL
00339         #warning MQX IO Channel is not defined by FMSTR_MQX_IO_CHANNEL macro, FreeMASTER use "ttya:" IO Channel
00340         #define FMSTR_MQX_IO_CHANNEL "ttya:"
00341     #endif
00342    
00343     /* configure the FreeMASTER communication channel to non blocking mode */
00344     #ifndef FMSTR_MQX_IO_BLOCKING
00345         #warning FMSTR_MQX_IO_BLOCKING macro is not defined, the MQX IO Channel will be open in non blocking mode
00346         #define FMSTR_MQX_IO_BLOCKING 0
00347     #endif
00348 
00349     /* MQX open port parameters */
00350     #if FMSTR_MQX_IO_BLOCKING
00351          #define FMSTR_MQX_IO_PARAMETER 0
00352     #else
00353          #define FMSTR_MQX_IO_PARAMETER IO_SERIAL_NON_BLOCKING
00354     #endif
00355     
00356     /* MQX doesn't supports Long interrupt and Short interrupt */
00357     #if FMSTR_LONG_INTR
00358          #warning "MQX IO interface doesn't supports the Long Interrupt routines"
00359     #elif FMSTR_SHORT_INTR
00360          #warning "MQX IO interface doesn't supports the normal Short Interrupt routines, please open your MQX communication interface in Interrupt mode"
00361     #endif
00362 #endif
00363 
00364 #if defined(FMSTR_PLATFORM_MQX) 
00365   #if FMSTR_PLATFORM_MQX
00366 
00367     /* MQX communication interfaces require MQX header files to be included. */
00368     #ifndef __MQX__
00369         #error Please include the MQX header file before the freemaster.h
00370     #endif
00371 
00372     #if FMSTR_USE_SCI
00373     #error "MQX target driver doesn't supports the SCI module as communication interface"
00374     #elif FMSTR_USE_CAN
00375     #error "MQX target driver doesn't supports the CAN module as communication interface"
00376     #elif FMSTR_USE_JTAG
00377     #error "MQX target driver doesn't supports the JTAG module as communication interface"
00378     #elif FMSTR_USE_USB_CDC
00379     #error "MQX target driver doesn't supports the USB CDC as communication interface"
00380     #endif
00381   #endif
00382 #endif
00383 
00384 #if FMSTR_USE_SCI || FMSTR_USE_JTAG || FMSTR_USE_USB_CDC || FMSTR_USE_MQX_IO
00385   #ifndef FMSTR_USE_SERIAL
00386                 #define FMSTR_USE_SERIAL 1
00387         #else
00388                 #if FMSTR_USE_SERIAL == 0
00389                         #error "FMSTR_USE_SERIAL macro cannot be configured by user, FreeMASTER serial driver functionality is not garanted."
00390                 #endif
00391         #endif
00392 #else
00393     #ifndef FMSTR_USE_SERIAL
00394         #define FMSTR_USE_SERIAL 0
00395     #endif
00396 #endif
00397 
00398 #if FMSTR_USE_USB_CDC
00399     /* USB CDC driver doesn't supports POLL mode */
00400     #if FMSTR_POLL_DRIVEN
00401          #error "FreeMASTER USB CDC driver doesn't supports the POLL mode"
00402     #endif
00403 #endif
00404 
00405 #if FMSTR_USE_PDBDM
00406     /* Packet Driven BDM communication does not support any interrupt mode */
00407     #if FMSTR_SHORT_INTR || FMSTR_LONG_INTR
00408          #warning "FreeMASTER Packet Driven BDM driver doesn't support any Interrupt mode"
00409     #endif
00410 #endif
00411 
00412 /* check scope settings */
00413 #if FMSTR_USE_SCOPE
00414     #if FMSTR_MAX_SCOPE_VARS > 8 || FMSTR_MAX_SCOPE_VARS < 2
00415         #error Error in FMSTR_MAX_SCOPE_VARS value. Use a value in range 2..8
00416     #endif
00417 #endif  
00418 
00419 /* check recorder settings */
00420 #if FMSTR_USE_RECORDER || FMSTR_USE_FASTREC
00421     #if FMSTR_MAX_REC_VARS > 8 || FMSTR_MAX_REC_VARS < 2
00422         #error Error in FMSTR_MAX_REC_VARS value. Use a value in range 2..8
00423     #endif
00424     
00425     #if !FMSTR_USE_READMEM
00426         #error Recorder needs the FMSTR_USE_READMEM feature
00427     #endif
00428 #endif  
00429 
00430 /* fast recorder requires its own allocation of recorder buffer */
00431 #if FMSTR_USE_FASTREC
00432     #if FMSTR_REC_OWNBUFF
00433         #error Fast recorder requires its own buffer allocation
00434     #endif
00435 #endif
00436 
00437 #if FMSTR_USE_TSA
00438     #if !FMSTR_USE_READMEM
00439         #error TSA needs the FMSTR_USE_READMEM feature
00440     #endif
00441 #endif
00442 
00443 /* check SFIO settings */
00444 #if FMSTR_USE_SFIO
00445 
00446     /* The SFIO configuration files (sfio.h and optionally also the sfio_cfg.h) exist 
00447        in project to define SFIO parameters. */
00448     #include "sfio.h"
00449     
00450     #ifndef SFIO_MAX_INPUT_DATA_LENGTH
00451     #error  SFIO_MAX_INPUT_DATA_LENGTH was not defined in sfio_cfg.h
00452     #endif
00453     #ifndef SFIO_MAX_OUTPUT_DATA_LENGTH
00454     #error  SFIO_MAX_OUTPUT_DATA_LENGTH was not defined in sfio_cfg.h
00455     #endif
00456     
00457 #endif    
00458 
00459 #if FMSTR_USE_PIPES
00460 
00461     #ifdef FMSTR_PIPES_EXPERIMENTAL
00462     #warning The "pipes" feature is now in experimental code phase. Not yet tested on this platform.
00463     #endif        
00464 
00465     /* must enable printf for vararg printf */
00466     #if !(FMSTR_USE_PIPE_PRINTF) && (FMSTR_USE_PIPE_PRINTF_VARG)
00467     #error You must enable pipe printf for vararg printf (see FMSTR_USE_PIPE_PRINTF)
00468     #endif
00469 
00470     /* at least one */
00471     #if FMSTR_MAX_PIPES_COUNT < 1
00472     #warning No sense to allocate zero-count pipes. Disabling pipes.
00473     #undef  FMSTR_USE_PIPES
00474     #define FMSTR_USE_PIPES 0
00475     #endif
00476 
00477     /* printf buffer should accept one integer printed */    
00478     #if FMSTR_PIPES_PRINTF_BUFF_SIZE < 8
00479     #error Pipe printf buffer should be at least 8 (see FMSTR_PIPES_PRINTF_BUFF_SIZE)
00480     #endif
00481     #if FMSTR_PIPES_PRINTF_BUFF_SIZE > 255
00482     #error Pipe printf buffer should not exceed 255 (see FMSTR_PIPES_PRINTF_BUFF_SIZE)
00483     #endif
00484     
00485 #endif
00486 
00487 /* check what kind of board info is sent */
00488 #if FMSTR_USE_BRIEFINFO
00489     #if FMSTR_USE_RECORDER
00490         #warning The full information structure must be used when recorder is to be used
00491         #undef  FMSTR_USE_BRIEFINFO
00492         #define FMSTR_USE_BRIEFINFO 1
00493     #endif
00494 #endif
00495 
00496 /* automatic buffer size by default */
00497 #ifndef FMSTR_COMM_BUFFER_SIZE
00498 #define FMSTR_COMM_BUFFER_SIZE 0
00499 #endif
00500 
00501 /* check minimal buffer size required for all enabled features */
00502 #if FMSTR_COMM_BUFFER_SIZE
00503     
00504     /* basic commands (getinfobrief, write/read memory etc.) */
00505     #if FMSTR_USE_BRIEFINFO && FMSTR_COMM_BUFFER_SIZE < 11 
00506     #error FMSTR_COMM_BUFFER_SIZE set too small for basic FreeMASTER commands (11 bytes)
00507     #endif
00508 
00509     /* full info required */
00510     #if !(FMSTR_USE_BRIEFINFO) && FMSTR_COMM_BUFFER_SIZE < 35
00511     #error FMSTR_COMM_BUFFER_SIZE set too small for GETINFO command (size 35)
00512     #endif
00513 
00514     /* application commands */
00515     #if FMSTR_USE_APPCMD && FMSTR_COMM_BUFFER_SIZE < ((FMSTR_APPCMD_BUFF_SIZE)+1)
00516     #error FMSTR_COMM_BUFFER_SIZE set too small for SENDAPPCMD command (size FMSTR_APPCMD_BUFF_SIZE+1)
00517     #endif
00518 
00519     /* configuring scope (EX) */
00520     #if FMSTR_USE_SCOPE && FMSTR_COMM_BUFFER_SIZE < ((FMSTR_MAX_SCOPE_VARS)*5+1)
00521     #error FMSTR_COMM_BUFFER_SIZE set too small for SETUPSCOPEEX command (size FMSTR_MAX_SCOPE_VARS*5+1)
00522     #endif
00523 
00524     /* configuring recorder (EX) */
00525     #if FMSTR_USE_RECORDER && FMSTR_COMM_BUFFER_SIZE < ((FMSTR_MAX_REC_VARS)*5+18)
00526     #error FMSTR_COMM_BUFFER_SIZE set too small for SETUPRECEX command (size FMSTR_MAX_REC_VARS*5+18)
00527     #endif
00528     
00529     /* SFIO encapsulation */
00530     #if FMSTR_USE_SFIO
00531     #if (FMSTR_COMM_BUFFER_SIZE < ((SFIO_MAX_INPUT_DATA_LENGTH)+1)) || \
00532         (FMSTR_COMM_BUFFER_SIZE < ((SFIO_MAX_OUTPUT_DATA_LENGTH)+1))
00533     #error FMSTR_COMM_BUFFER_SIZE set too small for SFIO encapsulation (see SFIO_MAX_xxx_DATA_LENGTH)
00534     #endif
00535     #endif
00536  
00537 #endif
00538 
00539 #endif /* __FREEMASTER_PRIVATE_H */
00540